package com.hd123.jixia.api;

import java.util.List;

/**
 * 权限节点服务
 *
 * Date: 2021/11/17 15:39
 *
 * @author zhangxin
 * @email zhangxin@hd123.com
 */
public interface PowerService {

  /**
   * 根据id获取权限节点
   * 
   * @param id
   *          节点id，不能为空
   * @param fetchChildNode
   *          是否加载子节点
   * @return 权限节点对象
   */
  PowerNode getById(String id, boolean fetchChildNode);

  /**
   * 根据节点名称获取权限节点
   *
   * @param name
   *          节点名称，不能为空
   * @param fetchChildNode
   *          是否加载子节点
   * @return 权限节点对象
   */
  PowerNode getByName(String name, boolean fetchChildNode);

  /**
   * 加载所有的子节点
   * 
   * @param id
   *          节点id，不能为空
   * @return 节点列表
   */
  List<PowerNode> listChildNode(String id);

  /**
   * 根据id获取权限节点，包含该节点权限树下的所有权限
   * 
   * @param id
   *          节点id，不能为空
   * @return 权限节点对象
   */
  PowerNode getFetchAllChildNode(String id);
}
